#ifndef ___fat32_estados_conexiones

#define ___fat32_estados_conexiones 1

#include "operbits.c"

unsigned char fat32_estado_conexion(unsigned short);
void fat32_establecer_estado_conexion(unsigned short, unsigned char);

typedef enum {
  ECON_CERRADA = 0,
  ECON_ESPERA_HANDSHAKE = 1,
  ECON_EN_USO = 2,
  ECON_LIBRE = 3
} estados_conexiones;

unsigned char fat32_estado_conexion (unsigned short numeroConexion) {
  if (numeroConexion >= fat32_cantidad_conexiones) return 255;
  return obtenerBits(fat32_conexiones_ocupadas[numeroConexion / 4], 2 * (numeroConexion % 4), 2);
}

void fat32_establecer_estado_conexion (unsigned short numeroConexion, unsigned char nuevoEstado) {
  if (numeroConexion >= fat32_cantidad_conexiones) return;
  if (nuevoEstado > 3) return;
  fat32_conexiones_ocupadas[numeroConexion / 4] = establecerBits(fat32_conexiones_ocupadas[numeroConexion / 4], (numConexion % 4) * 2, 2,
                                                                 nuevoEstado);
}

#endif